package uiMain;

import gestorbienraizok.usuarios.Funcionario;
import gestorbienraizok.usuarios.FuncionarioJefe;
import gestorbienraizok.usuarios.Persona;
import java.util.Scanner;
import static uiMain.bienRaizOk.entrada;
import static uiMain.bienRaizOk.listaDePersonas;

public class OpcionRegistrarFuncionario extends OpcionDeMenu {

    private final String nombreParaMostrar = " Registrar un nuevo funcionario a mi cargo";

    @Override
    public void ejecutar() {
        FuncionarioJefe llamador = (FuncionarioJefe) uiMain.bienRaizOk.usuarioActual;
        Persona estaPersona = null;
        do {
            long cedula;
            do {
                System.out.print("Ingrese la cédula del nuevo funcionario: ");
                entrada = new Scanner(System.in);
                cedula = entrada.nextLong();
            } while (cedula < 0);

            estaPersona = Persona.buscarPersona(cedula);

            if (estaPersona != null) {
                System.out.println("Ya hay un usuario registrado en el sistema con cédula " + cedula + " (" + estaPersona.getNombre() + "), es un " + estaPersona.tipoDePersona());
            } else {
                System.out.print("Ingrese el nombre de este funcionario: ");
                entrada = new Scanner(System.in);
                String nombre = entrada.nextLine();

                System.out.print("Cree una contraseña para este funcionario: ");                
                String contrasenha = entrada.nextLine();

                long salarioBase;
                do {
                    System.out.print("Ingrese el salario base para este funcionario: $");
                    entrada = new Scanner(System.in);
                    salarioBase = entrada.nextLong();
                } while (salarioBase < 0);

                Funcionario nuevoFuncionario = new Funcionario(cedula, contrasenha, nombre, salarioBase);
                listaDePersonas.add(nuevoFuncionario);
                llamador.registrarSubordinado(nuevoFuncionario);
            }
        } while (estaPersona != null);
    }

    @Override
    public String toString() {
        return nombreParaMostrar;
    }
    
    @Override
    public String toStringParaMostrarElNivel() {
        return nombreParaMostrar.trim().concat("...................................................................").substring(0,67) + "Funcionarios jefes";
    }
}